html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6,
p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img,
ins, kbd, q, samp, small, strong, sub, sup, var, b, i,
dl, dt, dd, ol, ul, li, fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, figure, footer, header, menu, nav, section,
time, mark, audio, video, details, summary, button, input, textarea {
  margin: 0;
  padding: 0;
  line-height: 1;
  font-size: inherit;
  vertical-align: baseline;
}

iframe {
  border: 0;
}

html {
  box-sizing: border-box;
  font-size: @font-size;
}

*,
*:before,
*:after {
  box-sizing: inherit;
}

/* normalize */
html, body {
  width: 100%;
  height: 100%;
}

input, button, body {
  font-family: @font-family;
  color: @color;
}

ul, ol {
  list-style-position: inside;
}

/* typography */
h1 { font-size: @h1; }
h2 { font-size: @h2; }
h3 { font-size: @h3; }
h4 { font-size: @h4; }
h5 { font-size: @h5; }
h6 { font-size: @h6; }

/* tables */
table {
  border-collapse: separate;
  border-spacing: 0;
  max-width: 100%;
  width: 100%;
}

th {
  text-align: left;
  font-weight: bold;
}

th,
td {
  line-height: inherit;
  padding: @padding @padding;
}

th { vertical-align: bottom; }
td { vertical-align: top; }

/* forms */
label {
  vertical-align: middle;
}

svg, img, input {
  max-width: 100%;
  background: transparent;
}

select, textarea { line-height: 1.75; }

a, input, button {
  &:focus {
    outline: 0;
  }
}
